Recently, ASPs (Application Service Providers) have grown rapidly that lease applications such as business software for a designated period by providing them via the Internet in order to cut the total costs of building and operating a system drastically, reduce system development period, and so on. Users who outsource businesses to ASPs can do away with the need to purchase hardware or software for special applications, reduce maintenance costs, and even cut the number of full-time staff.
Computation intensive applications offered by ASPs include CAE (Computer Aided Engineering) which consists in employing a computer to aid product-development engineering such as strength analysis, thermal analysis, vibration analysis, etc. using a finite element method or boundary element method. Also, some ASPs handle financial engineering including financial affairs and accounting. Regarding server configurations, there are cases, for example, in which all processing is undertaken by an application server. With such configurations, it will be difficult to maintain or improve service levels because very heavy computation processes, if carried out, are likely to affect other interactive processes and make parallel computation difficult.
Some Web-based services which process time-consuming jobs such as optimization use a system which involves processing a submitted job and returning the results by mail. However, such services, which are provided free of charge for academic purposes, handle limited problem scales without guarantees for performance. On the other hand, large computer centers of public institutions such as universities provide parallel computers for use by the general public and operate them using resource management software. However, these facilities are intended for fairness and effective use of resources and billing for their use is based on total CPU time.
Regarding scheduling technologies for computational resources, mainstream techniques involve managing batch job queuing, adjusting some priorities, and assigning freed nodes to jobs. A background reason for this is the fact that most of current large-scale computer systems are composed of parallel systems. However, there are often secret paths which make it possible to receive service preferentially by deceiving algorithms. For example, there is a technique known as backfill, which allows a short job to cut in if there is any space temporarily in the node. This could allow a job, for example, to cut in for ten minutes and actually stay for an hour, as can happen in real life.
Published Unexamined Patent Application No. 7-141305 discloses a technique for improving the efficiency of processor utilization when a parallel computer is used simultaneously by an unspecified number of users.
In addition to existing users of high-performance computing such as scientists who use large computer centers and bio-related large companies which install large servers as their core competencies, there are potential users professionals who use heavy-duty processing such as Monte Carlo simulations or finite element methods for daily operations in financial, manufacturing, and other industries. However, such processing generally requires a large system, whose installation and maintenance involve heavy economic and technical burdens. Besides, as performance is increased to reduce computation time, idle time increases accordingly, resulting in reduced efficiency. Furthermore, depending on vendors or applications, inconvenience may occur that platforms is limited.
One solution to this problem is migration to the use of ASPs. On the part of applications vendors, they can specialize in algorithms, in which they have a competitive edge, using a fixed platform. At present, however, service quality is not ensured in terms of wait time and response, as described above. Besides, scheduling algorithms could be deceived, making it impossible to secure “fairness,” which is important in making business work.
The present invention has been made to solve the above technical problems. One of its objects is to implement fair service with guaranteed performance in a system which provides processing services such as computation intensive Web services.
Another object is to improve the efficiency of resource utilization in such a system based on estimation of computation time while encouraging clients to make accurate and honest estimates by giving incentives.